% Time stamp for Packet
% source_id
% atime: arriving source's time
% ptime: processing the packet's time
% ltime: leaving the source's time
-record(timestamp, {source_id, atime, ptime, ltime}).
%Timestamp=#timestamp{}.

% Network Packet
% id
% sources: Transfering through sources
% plength: The length of the packet
% ntime: The needing time for source's processing
% timestamps: The packet transfering each source's times
-record(packet, {id, sources=[], plength, ntime,timestamps=[]}).
%Packet=#packet{}.

% Network Router output line
% blength: buffer size
% rate: the link rate in unit time(by the simunation setting)
% dest_id: the linked source id
% dest_pid: the linked source spawn id
% buffers: the buffer of saving packet
-record(routerout,{source_id, blength=10, rate=100000000000, dest_id, dest_tid, buffers=[]}).
%RouterOut=#routerout{}.

% Network Router Controller
-record(routerc, {id, recpackets=[], losspackets=[], outlines=[]}).
%RouterController=#routerc{}.
